﻿namespace Org.Reddragonit.Net.DHCP
{

    public enum LogLevels
    {
        Debug,
        Error,
        Trace
    }

	public enum DHCPOpCode{
		BOOTREQUEST=1,
		BOOTREPLY=2
	}

    public enum DHCPMsgType
    {
        DHCPDISCOVER = 1,
        DHCPOFFER = 2,
        DHCPREQUEST = 3,
        DHCPDECLINE = 4,
        DHCPACK = 5,
        DHCPNAK = 6,
        DHCPRELEASE = 7,
        DHCPINFORM = 8
    }

    public enum DHCPOptionEnum  //refer to the rfc2132.txt for vendor specific info
    {
        SubnetMask = 1,
        TimeOffset = 2,
        Router = 3,
        TimeServer = 4,
        NameServer = 5,
        DomainNameServer = 6,
        LogServer = 7,
        CookieServer = 8,
        LPRServer = 9,
        ImpressServer = 10,
        ResourceLocServer = 11,
        HostName = 12,
        BootFileSize = 13,
        MeritDump = 14,
        DomainName = 15,
        SwapServer = 16,
        RootPath = 17,
        ExtensionsPath = 18,
        IpForwarding = 19,
        NonLocalSourceRouting = 20,
        PolicyFilter = 21,
        MaximumDatagramReAssemblySize = 22,
        DefaultIPTimeToLive = 23,
        PathMTUAgingTimeout = 24,
        PathMTUPlateauTable = 25,
        InterfaceMTU = 26,
        AllSubnetsAreLocal = 27,
        BroadcastAddress = 28,
        PerformMaskDiscovery = 29,
        MaskSupplier = 30,
        PerformRouterDiscovery = 31,
        RouterSolicitationAddress = 32,
        StaticRoute = 33,
        TrailerEncapsulation = 34,
        ARPCacheTimeout = 35,
        EthernetEncapsulation = 36,
        TCPDefaultTTL = 37,
        TCPKeepaliveInterval = 38,
        TCPKeepaliveGarbage = 39,
        NetworkInformationServiceDomain = 40,
        NetworkInformationServers = 41,
        NetworkTimeProtocolServers = 42,
        VendorSpecificInformation = 43,
        NetBIOSoverTCPIPNameServer = 44,
        NetBIOSoverTCPIPDatagramDistributionServer = 45,
        NetBIOSoverTCPIPNodeType = 46,
        NetBIOSoverTCPIPScope = 47,
        XWindowSystemFontServer = 48,
        XWindowSystemDisplayManager = 49,
        RequestedIPAddress = 50,
        IPAddressLeaseTime = 51,
        OptionOverload = 52,
        DHCPMessageTYPE = 53,
        ServerIdentifier = 54,
        ParameterRequestList = 55,
        Message = 56,
        MaximumDHCPMessageSize = 57,
        RenewalTimeValue_T1 = 58,
        RebindingTimeValue_T2 = 59,
        Vendorclassidentifier = 60,
        ClientIdentifier = 61,
        NetworkInformationServicePlusDomain = 64,
        NetworkInformationServicePlusServers = 65,
        TFTPServerName = 66,
        BootfileName = 67,
        MobileIPHomeAgent = 68,
        SMTPServer = 69,
        POP3Server = 70,
        NNTPServer = 71,
        DefaultWWWServer = 72,
        DefaultFingerServer = 73,
        DefaultIRCServer = 74,
        StreetTalkServer = 75,
        STDAServer = 76,
        UserClassInformation=77,
        SLPDirectoryAgent=78,
        SLPServiceScope=79,
        RapidCommit=80,
        FullyQualifiedDomainName=81,
        RelayAgentInformation=82,
        InternetStorageNameService=83,
        u84=84,
        NDSServers=85,
        NDSTreeName=86,
        NDSContext=87,
        BCMCSControllerDomainNameList=88,
        BCMCSControllerIPv4AddressList=89,
        Authentication=90,
        ClientLastTransactionTime=91,
        AssociatedIP=92,
        CLientSystemArhcitectureType=93,
        ClientNetworkInterfaceIdentifier=94,
        LDAP=95,
        u96=96,
        ClientMachinIdentifier=97,
        OpenGroupsUserAuthentication=98,
        GEOCONF_CIVIC=99,
        IEEE1003_1TZString=100,
        ReferenceTZDatabase=101,
        u102 = 102,
        u103 = 103,
        u104 = 104,
        u105 = 105,
        u106 = 106,
        u107 = 107,
        u108 = 108,
        u109 = 109,
        u110 = 110,
        u111 = 111,
        NetInfoParentServerAddress = 112,
        NetInfoParentServerTag = 113,
        URL = 114,
        u115=115,
        AutoConfigure=116,
        NameServiceSearch=117,
        SubnetSelection=118,
        DNSdomainSearchList=119,
        SIPServersDHCPOption=120,
        ClasslessStaticRoute=121,
        CableLabsClientConfiguration=122,
        GeoConf=123,
        VendorIdentifyingClass=124,
        VendorIdentifyingSpecific=125,
        u126=126,
        u127=127,
        TFTPServerIP=128,
        ClassServerIP=129,
        DiscriminationString=130,
        RemoteStatisticsServerIP=131,
        VLAN8021PID=132,
        L2Priority8021Q=133,
        DiffServCodePoint=134,
        HTTPProxyForPhoneSpecificApplications=135,
        PANAAuthenticationAgent=136,
        LoSTServer=137,
        CAPWAPAccessController=138,
        IPv4AddressMoS=139,
        IPv4FQDNMOS=140,
        u141 = 141,
        u142 = 142,
        u143 = 143,
        u144 = 144,
        u145 = 145,
        u146 = 146,
        u147 = 147,
        u148 = 148,
        u149 = 149,
        TFTPServerAddress_Etherboot_GRUBConfigPathName=150,
        u151 = 151,
        u152 = 152,
        u153 = 153,
        u154 = 154,
        u155 = 155,
        u156 = 156,
        u157 = 157,
        u158 = 158,
        u159 = 159,
        u160 = 160,
        u161 = 161,
        u162 = 162,
        u163 = 163,
        u164 = 164,
        u165 = 165,
        u166 = 166,
        u167 = 167,
        u168 = 168,
        u169 = 169,
        u170 = 170,
        u171 = 171,
        u172 = 172,
        u173 = 173,
        u174 = 174,
        Etherboot=175,
        IPTelephone=176,
        Etherboot_PacketCable_CableHome=177,
        u178 = 178,
        u179 = 179,
        u180 = 180,
        u181 = 181,
        u182 = 182,
        u183 = 183,
        u184 = 184,
        u185 = 185,
        u186 = 186,
        u187 = 187,
        u188 = 188,
        u189 = 189,
        u190 = 190,
        u191 = 191,
        u192 = 192,
        u193 = 193,
        u194 = 194,
        u195 = 195,
        u196 = 196,
        u197 = 197,
        u198 = 198,
        u199 = 199,
        u200 = 200,
        u201 = 201,
        u202 = 202,
        u203 = 203,
        u204 = 204,
        u205 = 205,
        u206 = 206,
        u207 = 207,
        pxelinuxMagic=208,
        pxelinuxConfigFile=209,
        pxelinuxPathPrefix=210,
        pxelinuxRebootTime=211,
        u212 = 212,
        u213 = 213,
        u214 = 214,
        u215 = 215,
        u216 = 216,
        u217 = 217,
        u218 = 218,
        u219 = 219,
        SubnetAllocation=220,
        VirtualSubnetSelection=221,
        u222 = 222,
        u223 = 223,
        u224 = 224,
        u225 = 225,
        u226 = 226,
        u227 = 227,
        u228 = 228,
        u229 = 229,
        u230 = 230,
        u231 = 231,
        u232 = 232,
        u233 = 233,
        u234 = 234,
        u235 = 235,
        u236 = 236,
        u237 = 237,
        u238 = 238,
        u239 = 239,
        u240 = 240,
        u241 = 241,
        u242 = 242,
        u243 = 243,
        u244 = 244,
        u245 = 245,
        u246 = 246,
        u247 = 247,
        u248 = 248,
        u249 = 249,
        u250 = 250,
        u251 = 251,
        u252 = 252,
        u253 = 253,
        u254 = 254
    }
}